<?php
App::uses('AppController', 'Controller');
/**
 * DataPagamentos Controller
 *
 * @property DataPagamento $DataPagamento
 */
class DataPagamentosController extends AppController {
	
	var $components = array('Datas');
	
	public function beforeFilter(){
		parent::beforeFilter();
		$this->Auth->allow('precos');
	}
	
	public function index(){
		if(!$this->isAdmin()){
			$this->notAuth();
		}
		$dados = $this->DataPagamento->tabelaDePrecos();
		$associacoes = $this->DataPagamento->Associacao->find('list');
		$especializacoes = $this->DataPagamento->Especializacao->find('list');
		$this->set('dados', $dados);
		$this->set('associacoes', $associacoes);
		$this->set('especializacoes', $especializacoes);
	}
	
	/**
	 * add method
	 *
	 * @return void
	 */
	public function add() {
		if(!$this->isAdmin()){
			$this->notAuth();
		}
		if ($this->request->is('post')) {
			$this->DataPagamento->set($this->request->data);
			if($this->DataPagamento->validates()){
				$request = $this->request->data;
				$request['DataPagamento']['data_inicio'] = $this->Datas->converterData($request['DataPagamento']['data_inicio']);
				$request['DataPagamento']['data_fim'] = $this->Datas->converterData($request['DataPagamento']['data_fim']);
				if($this->DataPagamento->validarIntervalo($request)){
					if ($this->DataPagamento->savePeriodo($request)) {
						$this->Session->setFlash(__('Período adicionado'), 'flash/bootstrap', array('class'=>'alert alert-success'));
						$this->redirect(array('action' => 'index'));
					} else {
						$this->Session->setFlash(__('O intervalo não pôde ser salvo. Tente novamente.'), 'flash/bootstrap', array('class'=>'alert alert-error'));
					}
				}
				else {
					$this->Session->setFlash(__('Intervalo de datas sobrepõe um outro já existente'), 'flash/bootstrap', array('class'=>'alert alert-error'));
				}
			}
			else {
				$this->Session->setFlash(__('Erro no formulário !'), 'flash/bootstrap', array('class'=>'alert alert-error'));
			}
			
		}
		$especializacaos = $this->DataPagamento->Especializacao->find('list');
		$associacaos = $this->DataPagamento->Associacao->find('list');
		$this->set(compact('especializacaos', 'associacaos'));
		
	}
	
	/**
	 * delete method
	 *
	 * @throws NotFoundException
	 * @param string $id
	 * @return void
	 */
	public function delete() {
		if(!$this->isAdmin()){
			$this->notAuth();
		}
		$this->request->onlyAllow('post', 'delete');
		if ($this->DataPagamento->deletePeriodo($this->request->data)) {
			$this->Session->setFlash(__('Periodo removido!'), 'flash/bootstrap', array('class'=>'alert alert-success'));
			$this->redirect(array('action' => 'index'));
		}
		else{
			$this->Session->setFlash(__('Erro ao remover periodo'), 'flash/bootstrap', array('class'=>'alert alert-error'));
			$this->redirect(array('action' => 'index'));
		}
	}
	
	public function salva_valor(){
		if(!$this->isAdmin()){
			$this->notAuth();
		}
		//pr($this->request->data);
		$this->request->data['preco'] = substr($this->request->data['preco'], 3);
		$this->request->data['preco'] = str_replace('.', '', $this->request->data['preco']);
		$this->request->data['preco'] = str_replace(',', '.', $this->request->data['preco']);
		$this->autoRender = false;
		$this->DataPagamento->id = $this->request->data['id'];
		return ($this->DataPagamento->save($this->request->data));
	}
	
	public function precos(){
		$dados = $this->DataPagamento->tabelaDePrecos();
		$associacoes = $this->DataPagamento->Associacao->find('list');
		$especializacoes = $this->DataPagamento->Especializacao->find('list');
		$this->set('dados', $dados);
		$this->set('associacoes', $associacoes);
		$this->set('especializacoes', $especializacoes);
	}

}
